package cn.itsource.pethome.user.controller;

import cn.itsource.pethome.basic.util.AjaxResult;
import cn.itsource.pethome.user.domain.User;
import cn.itsource.pethome.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;

    /**
     * 校验手机号码是否存在
     * @param param
     * @return
     */
    @PostMapping("/checkPhone")
    public AjaxResult checkPhone(@RequestBody Map<String,String> param){
        try {
            //获取手机号码
            String phone = param.get("phone");
            //校验手机号码
            userService.checkPhone(phone);
            return new AjaxResult();
        } catch (Exception e) {
            e.printStackTrace();
            return new AjaxResult(false, e.getMessage());
        }
    }


    /**
     * 发送手机验证码
     * @param param
     * @return
     *      发送手机验证码的逻辑：
     *              1.验证码随机的(4)====》有效期是10分钟
     *              2.一分钟以内如果是同一个手机号码发送了多次，我就要提示用户，不能连续发送
     *              3.如果验证码超过了一分钟，我又点击了一次发送请求，这时候我使用的验证码应该是之前的验证码
     *              4.如果验证码失效了，应该产生新的验证码
     *
     *
     *
     */
    @PostMapping("/sendMobileCode")
    public AjaxResult sendMobileCode(@RequestBody Map<String,String> param){
        try {
            //获取前端传递的手机验证码
            String phone = param.get("phone");
            //发送手机验证码
            userService.sendMobileCodeByPhone(phone);
            return new AjaxResult();
        } catch (Exception e) {
            e.printStackTrace();
            return new AjaxResult(false, e.getMessage());
        }


    }
}
